import api from '../utils/http'

/**
 * @method 登录
 */
export const login = (phone, password) => api.get(`/login/cellphone?phone=${phone}&password=${password}`, {
  withCredentials: true
})

/**
 * @method 刷新登录
 */
export const loginRefresh = () => api.get(`/login/refresh`, {})

/**
 * @method 获取登录状态
 */
export const loginStatus = () => api.get(`/login/status`, {})

/**
 * @method 获取轮播图
 */
export const getBanner = () => api.get('/banner', {})

/**
 * @method 获取推荐歌单
 * @params {number} limit 取出数量默认为 30
 */
export const getPersonalized = (limit) => api.get(`/personalized?limit=${limit}`, {})

/**
 * @method 获取新歌推荐
 * @params {number} limit 取出数量默认为 30
 * @params {number} type 全部:0华语:7欧美:96日本:8韩国:16
 */
export const getTopSong = (type) => api.get(`/top/song?type=${type}`, {})

/**
 * @method 获取推荐mv
 * @params {number} limit 取出数量默认为 30
 */
export const getTopMv = (limit, offset) => api.get(`/top/mv?limit=${limit}&offset=${offset}`, {})

/**
 * @method 获取mv数据
 * @params {number} mvid 取出数量默认为 30
 */
export const getMvData = (mvid) => api.get(`/mv/detail?mvid=${mvid}`, {})

/**
 * @method 获取每日推荐歌曲
 */
export const getRecommend = () => api.get(`/recommend/songs`, {
  withCredentials: true
})

/**
 * @method 歌单分类
 */
export const getSonglist = () => api.get(`/playlist/catlist`, {
  withCredentials: true
})

/**
 * @method 获取精品歌单
 * @params {number} limit 取出数量默认为 30
 * @params {string} before 分页参数, 取上一页最后一个歌单的 updateTime 获取下一页数据
 */
export const getHighquality = (limit, before) => api.get(`/top/playlist/highquality?limit=${limit}&before=${before}`, {
  withCredentials: true
})

/**
 * @method 获取歌单
 * @params {string} order 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 'hot'
 * @params {number} limit 取出数量
 * @params {string} cat 标签
 */
export const getPlayList = (order, limit, offset, cat) => api.get(`/top/playlist?order=${order}&limit=${limit}&offset=${offset}&cat=${cat}`, {
  withCredentials: true
})

/**
 * @method 获取排行榜（带摘要）
 */
export const getRankList = () => api.get(`/toplist/detail`, {
  withCredentials: true
})

/**
 * @method 获取视频分类（标签列表）(暂时无用)
 */
export const getVideoList = () => api.get(`/video/group/list`, {
  withCredentials: true
})

/**
 * @method 获取视频分类（标签列表）(暂时无用)
 */
export const getVideoGroup = (id, limit, offset) => api.get(`/video/group?id=${id}&limit=${limit}&offset=${offset}`, {
  withCredentials: true
})

/**
 * @method 获取全部MV
 * @params {string} area 地区,可选值为全部,内地,港台,欧美,日本,韩国,不填则为全部
 * @params {string} type 类型,可选值为全部,官方版,原生,现场版,网易出品,不填则为全部
 * @params {string} order 排序,可选值为上升最快,最热,最新,不填则为上升最快
 * @params {number} limit 取出数量 , 默认为 30
 * @params {number} offset 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认 为 0
 */
export const getMvAll = (area, limit, offset) => api.get(`/mv/all?area=${area}&limit=${limit}&offset=${offset}`, {
  withCredentials: true
})

/**
 * @method 获取歌手分类
 * @params {number} cat 歌手类型,默认 1001,返回华语男歌手
 * @params {number} limit 取出数量 , 默认为 30
 * @params {number} offset 偏移数量 , 用于分页 , 如 :( 页数 -1)*50, 其中 50 为 limit 的值 , 默认 为 0
 */
export const getSinger = (cat, limit, offset) => api.get(`/artist/list?cat=${cat}&limit=${limit}&offset=${offset}`, {
  withCredentials: true
})

/**
 * @method 获取已收藏歌手
 */
export const getCollectSinger = () => api.get(`/artist/sublist`, {
  withCredentials: true
})

/**
 * @method 获取歌单详情
 * @params { number } id 歌单id 必选
 * @params { number } s 歌单最近的s个收藏者 可选
 */
export const getSonglistDetail = (id, s) => api.get(`/playlist/detail?id=${id}&s=${s}`, {
  withCredentials: true
})

/**
 * @method 获取音乐详情
 * @params { number } ids 歌曲id 必选
 */
export const getSongDetail = (ids) => api.get(`/song/detail?ids=${ids}`, {
  withCredentials: true
})

/**
 * @method 获取音乐播放地址
 * @params { number } id 歌曲id 必选
 * @params { number } br 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推
 */
export const getSongUrl = (id) => api.get(`/song/url?id=${id}`, {
  withCredentials: true
})

/**
 * @method 获取音乐是否可用
 * @params { number } id 歌曲id 必选
 */
export const getSongCheck = (id) => api.get(`/check/music?id=${id}`, {
  withCredentials: true
})

/**
 * @method 获取音乐歌词
 * @params { number } id 歌曲id 必选
 */
export const getSongLyric = (id) => api.get(`/lyric?id=${id}`, {
  withCredentials: true
})
